package com.example.network_sdk

import retrofit2.Retrofit

class NetWorkFactory {
    companion object {
        private var tokenRetrofit: Retrofit? = null
        private var signRetrofit: Retrofit? = null
        private var tokensignRetrofit: Retrofit? = null
        private var noneRetrofit: Retrofit? = null
        fun factory(type: HttpType) : Retrofit? {
            var retrofit: Retrofit? = null
            when (type) {
                HttpType.TOKEN -> {
                    if (tokenRetrofit == null) tokenRetrofit = TokenRetrofitImpl().createRetrofit()
                    retrofit = tokenRetrofit
                }
                HttpType.SIGN -> {
                    if (signRetrofit == null) signRetrofit = SignRetrofitImpl().createRetrofit()
                    retrofit = signRetrofit
                }
                HttpType.NONE -> {
                    if (noneRetrofit == null) noneRetrofit = NoneHttpRetrofitImpl().createRetrofit()
                    retrofit = noneRetrofit
                }
                HttpType.TOKENSIGN -> {
                    if (tokensignRetrofit == null) tokensignRetrofit =
                        TokenSignRetrofitImpl().createRetrofit()
                    retrofit = tokensignRetrofit
                }
            }
            return retrofit
        }
    }
}